package com.ww.learn.innerclass

// 打印结果
//java.util.AbstractList<E>
//java.util.ArrayList<java.lang.String>
fun main() {
    val list1 = ArrayList<String>()
    val list2 = object : ArrayList<String>() {} // 匿名内部类

    println(list1.javaClass.genericSuperclass)

    // 为什么能拿到泛型参数的类型？
    // 泛型类型擦除并不是真的将全部的类型信息都擦除，还是会将类型信息放在对应class的常量池中的
    println(list2.javaClass.genericSuperclass)
}